package com.xxl.job.core.biz;

import com.xxl.job.core.biz.model.*;

/**
 * Created by xuxueli on 17/3/1.
 */
public interface ExecutorBiz {

    /**
     * 心跳检测
     * beat
     *
     * @return {@link ReturnT}<{@link String}>
     */
    public ReturnT<String> beat();

    /**
     * 空闲检测
     * idle beat
     *
     * @param idleBeatParam 空闲检测参数
     * @return {@link ReturnT}<{@link String}>
     */
    public ReturnT<String> idleBeat(IdleBeatParam idleBeatParam);

    /**
     * 运行定时任务
     * run
     *
     * @param triggerParam 触发参数
     * @return {@link ReturnT}<{@link String}>
     */
    public ReturnT<String> run(TriggerParam triggerParam);

    /**
     * 停止定时任务
     * kill
     *
     * @param killParam 停止定时任务参数
     * @return {@link ReturnT}<{@link String}>
     */
    public ReturnT<String> kill(KillParam killParam);

    /**
     * 获取日志
     * log
     *
     * @param logParam 日志参数
     * @return {@link ReturnT}<{@link LogResult}>
     */
    public ReturnT<LogResult> log(LogParam logParam);

}
